package main

import "fmt"

/*
打印一个5*5的“你妹”方阵
\t为制表符，根据环境的不同代表4或8个空格
*/
func main081() {

	for j := 0; j < 5; j++ {
		for i := 0; i < 5; i++ {
			fmt.Print("你妹\t\t")
		}
		fmt.Println()
	}

}

/*完成a,b两个变量的互换*/
func main082() {
	var a = 5
	var b = 9

	//把b丢给temp
	temp := b
	//把a丢给b
	b = a
	//把temp丢给a
	a = temp

	fmt.Println(a,b)
}

/*完成a,b两个变量的互换*/
func main083() {
	var a = 5
	var b = 9

	//一次性给多个变量赋值
	var c,d = 7,13
	fmt.Println(c,d)

	//ab互换位置
	a,b = b,a
	fmt.Println(a,b)
}

/*把切片中最大的三位放在前三位*/
func main084() {
	s := []int{5, 2, 7, 1, 3, 9, 4, 8, 6, 0, 2}
	//锁定第0位
	var i = 0
	//从第i+1位遍历到末尾，如果某一位比第i位大，就将它和第i位互换位置
	for j:=i+1;j< len(s);j++{
		if s[j] > s[i]{
			s[i],s[j] = s[j],s[i]
		}
	}
	fmt.Println(s)

	//把第二大的换到第二位
	//锁定第1位
	i = 1
	//从第i+1位遍历到末尾，如果某一位比第i位大，就将它和第i位互换位置
	for j:=i+1;j< len(s);j++{
		if s[j] > s[i]{
			s[i],s[j] = s[j],s[i]
		}
	}
	fmt.Println(s)


	fmt.Println(s)

}

/*实现对整型切片的排序*/
func main085() {
	s := []int{5, 2, 7, 1, 3, 9, 4, 8, 6, 0}

	for i:=0;i< len(s)-1;i++{
		//从第i+1位遍历到末尾，如果某一位比第i位大，就将它和第i位互换位置
		for j:=i+1;j< len(s);j++{
			if s[j] > s[i]{
				s[i],s[j] = s[j],s[i]
			}
		}
	}

	fmt.Println(s)
}

func main() {
	s := []int{5, 2, 7, 1, 3, 9, 4, 8, 6, 0}
	sortSlice(s)
	fmt.Println(s)
}

/*对输入的整型切片做排序*/
func sortSlice(s []int) {
	for i:=0;i<len(s)-1;i++{
		for j:=i+1;j< len(s);j++{
			if s[j] > s[i]{
				s[i],s[j] = s[j],s[i]
			}
		}
	}
}
